﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using PloobsEngine.Publishers;

namespace PloobsEngine.Modelo.Animation
{
    public delegate void HandleAnimationObserverCall(Object obj );

    public interface IAnimatedController : IControllerObserver 
    {
        void ChangeAnimation(String animationName, AnimationChangeMode mode);
        void Update(GameTime gt);
        void ChangeInterpolationMode(AnimationInterpolationMode im);
        Matrix[] GetBoneTransformations();
        void Serialize(System.Xml.XmlTextWriter textWriter);
        void DeSerialize(System.Xml.XmlNode node, EngineStuff engine,IAnimatedModel model);
        void TransformBone(String boneName,Quaternion rot);
        Matrix GetBoneAbsoluteTransform(String boneName);

    }
   public  enum AnimationChangeMode
    {
       Blend , Normal

    }
   public enum AnimationInterpolationMode
    {
        No_Interpolation , Linear_Interpolation , Cubic_Interpolation ,  Spherical_Interpolation
    }
}
